from django.shortcuts import render
from rest_framework.viewsets import ReadOnlyModelViewSet
from rest_framework_extensions.cache.mixins import CacheResponseMixin

from.models import Area
from .serializers import SubAreaSerializer, AreaSerializer

# Create your views here.
"""
先得到省份的数据,再根据传入的pk判断获取市还是区县的数据
省级获取列表数据
含pk的获取当前省/市下边的数据,获取单个数据
所以既包含列表数据,也包括单个数据－－－－－>使用视图集
"""


class AreasViewSet(CacheResponseMixin,ReadOnlyModelViewSet):
    # 禁用分页
    pagination_class = None

    def get_serializer_class(self):
        """
        提供序列化器
        """
        if self.action == 'list':
            return AreaSerializer
        else:
            return SubAreaSerializer

    def get_queryset(self):
        """
        提供数据集
        """
        if self.action == 'list':
            return Area.objects.filter(parent=None)
        else:
            return Area.objects.all()